﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;

namespace EntitiesLayer
{
    public class Funcionario: Usuario
    {
      
        private readonly Lazy<IList<HorarioDia>> horariosDeTrabajo;
        public IList<HorarioDia> HorariosDeTrabajo 
        {
            get { return horariosDeTrabajo.NullSaveValue(); }
        }


        public Funcionario(string identificacion, string nombre, 
            string PApellido, string SApellido, DateTime fechaNacimiento, 
            DateTime fechaIngreso, Genero genero, Bitmap foto, string alias,
            string nombreUsuario, string discripcionTipoId, string nacionalidad, Rol rol,
            
            EstadoUsuario estado = EstadoUsuario.activo,
            Lazy<IList<CorreoElectronico>> listaCorreos=null, 
            Lazy<IList<Telefono>> listaTelefonos=null,
            Lazy<IList<HorarioDia>> horariosDeTrabajo = null, 
            Lazy<IList<Referencia>> listaReferencias=null,
            Lazy<IList<Cita>> listaCitasPorAtender = null, 
            Lazy<IList<Notificacion>> listaNotificacion = null, 
            bool ClaveEsAuto = true, int idUsuario = 0)
        
           :base( identificacion, nombre, PApellido,
            SApellido, fechaNacimiento, fechaIngreso, 
            genero, foto, alias, nombreUsuario,
            discripcionTipoId, nacionalidad, rol, 
            estado, listaCorreos, listaTelefonos,
            listaReferencias, listaCitasPorAtender
            ,listaNotificacion,ClaveEsAuto, idUsuario)
        {
            Tipo = TipoUsuario.funcionario;
            this.horariosDeTrabajo = horariosDeTrabajo;

        
        }


    }
}
